<?php
#
#
# Copyright TEDECO, 2009. http://tedeco.fi.upm.es
#
# This file is part of kumenya.
#
# Kumenya is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Kumenya is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
#
#
#
?>
<?php

class Prestamo
{
	static public function getCampos ($tabla = false, $esAlta = false) {
		$gestorBD = new GestorBD();
		$campos = $gestorBD->CamposMultiplesTablas("MostrarCamposPrestamo", Biblioteca, TablaDePrestamos, $tabla);
		if (!$esAlta && !$tabla) {
			$identificador = Interfaz::CrearCampo(Uid,UID,NO);
			foreach ($identificador as $clave => $vector)
				$campos[$clave] = array_merge($vector, $campos[$clave]);
		}
		
 		return $campos;
	}

	static public function getCamposSancion ($tabla = false, $esAlta = false) {
		$campos = self::getCampos();
		$campos = Interfaz::QuitarCampos($campos, Estado);
		$Importe = Interfaz::CrearCampo(Sancion, Entero, SI);
		
		$campos = Interfaz::AgregarCampos($campos, $Importe);
 		return $campos;
	}

	static public function DarDeAlta($camposRellenos) {
		$gestorBD = new GestorBD();
		$exito = $gestorBD->EjecutarProcedimiento ('AltaDePrestamo',Biblioteca,$camposRellenos);
		if ($exito)
			Interfaz::Resultado($gestorBD->ObtenerResultado());
		else
			Interfaz::Error($gestorBD->ObtenerError());
		return $exito;
	}

	static public function CriteriosConsulta () {
		$gestorBD = new GestorBD();
		$criterios = $gestorBD->CriteriosConsulta ('ConsultaDePrestamos',Biblioteca);
		if (empty($criterios)) {
			Interfaz::Error($gestorBD->ObtenerError());
		}
		return $criterios;
	}	

	static public function Consultar ($criterios) {
		$gestorBD = new GestorBD();
		$tabla = $gestorBD->EjecutarProcedimientoConsulta ('ConsultaDePrestamos',Biblioteca, $criterios);
		if (!is_array($tabla))
			return FALSE;
		return $tabla;
	}

	static public function VerDetalles ($identificador) {
		$gestorBD = new GestorBD();
		$tabla = $gestorBD->EjecutarProcedimientoConsulta ('DetalleDePrestamo',Biblioteca, $identificador);
		if (!is_array($tabla)) {
			Interfaz::Error($gestorBD->ObtenerError());
			return FALSE;
		}
		if (is_array($tabla))
			return $tabla[0];
		else
			return $tabla;
	}

	static public function Modificar ($camposRellenos) {
		$gestorBD = new GestorBD();
		$exito = $gestorBD->EjecutarProcedimiento ('ModificacionDePrestamo',Biblioteca,$camposRellenos);		
		if ($exito)
			Interfaz::Resultado($gestorBD->ObtenerResultado());
		else
			Interfaz::Error($gestorBD->ObtenerError());
		return $exito;		
	}

	static public function Finalizar ($identificador) {
		$gestorBD = new GestorBD();
		$exito = $gestorBD->EjecutarProcedimiento ('DevolucionDeDocumento',Biblioteca,$identificador);		
		if ($exito)
			Interfaz::Resultado($gestorBD->ObtenerResultado());
		else
			Interfaz::Error($gestorBD->ObtenerError());
		return $exito;		
	}

	static public function Prorrogar ($identificador) {
		$gestorBD = new GestorBD();
		$exito = $gestorBD->EjecutarProcedimiento ('ProrrogaDePrestamo',Biblioteca,$identificador);		
		if ($exito)
			Interfaz::Resultado($gestorBD->ObtenerResultado());
		else
			Interfaz::Error($gestorBD->ObtenerError());
		return $exito;		
	}

	static public function DarDeBaja ($identificador) {
		$gestorBD = new GestorBD();
		$exito = $gestorBD->EjecutarProcedimiento ('BajaDePrestamo',Biblioteca,$identificador);		
		if ($exito)
			Interfaz::Resultado($gestorBD->ObtenerResultado());
		else
			Interfaz::Error($gestorBD->ObtenerError());
		return $exito;	
	}

	static public function CriteriosConsultaSancion () {
		$gestorBD = new GestorBD();
		$tabla = Persona::CriteriosConsulta ();
		if (!is_array($tabla))
			return FALSE;
		$tabla = array_merge (array(Uid => UID), $tabla);
		$tabla[Tipo] = array_merge (array(Uid => UID), $tabla[Tipo]);
		return $tabla;
	}

	static public function ConsultaSancion ($criterios) {
		$gestorBD = new GestorBD();
		$tabla = $gestorBD->EjecutarProcedimientoConsulta ('PrestamosConSancionPersona',Biblioteca, $criterios);
		if (!is_array($tabla))
			return FALSE;
		return $tabla;
	}

	static public function DetallesSancion ($identificador) {
		$gestorBD = new GestorBD();
		$tabla = $gestorBD->EjecutarProcedimientoConsulta ('DetallePrestamoConSancion',Biblioteca, $identificador);
		if (!is_array($tabla)) {
			Interfaz::Error($gestorBD->ObtenerError());
			return FALSE;
		}
		if (is_array($tabla))
			return $tabla[0];
		else
			return $tabla;
	}

	static public function PagarSancion ($identificador) {
		$gestorBD = new GestorBD();
		$exito = $gestorBD->EjecutarProcedimiento ('PagarSancion',Contabilidad,$identificador);		
		if ($exito)
			Interfaz::Resultado($gestorBD->ObtenerResultado());
		else
			Interfaz::Error($gestorBD->ObtenerError());
		return $exito;	
	}

}

?>